<?xml version="1.0"?>

<!-- ENOVIA DICTIONARY FOR RFL Functional Application -->
<!-- COPYRIGHT DASSAULT SYSTEMES 2007, All rights reserved -->
<Package xmlns="PLMDictionaryUnified" ModelerType="Top" BelongsToModeler="RFLPLMFunctional" Name="RFLPLMFunctionalCommunication"
	Uuid="02765cbd-0623-4702-9f289d6b1c2780e5"
	UseNames="PLMCORE RFLPLMFunctionalAbstract"
  CustomerExposition="Programmer"
>
  <Property Name="FormerTypingLegacy" Value="Yes"/>

  <CAAComment>
    <ShortRole>PLM RFL Functional Communication Package</ShortRole>
    <Role>This package describes the PLM Functional Communication model on top of PLM Core</Role>
  </CAAComment>

  <Comment>last update 2007-02-22</Comment>

  <!-- ******************************************************************************* -->
  <!-- *  RFLPLMFunctionalCommunicationReference (RFLPLMFunctionalAbstractReference) * -->
  <!-- ******************************************************************************* -->

  <Class Name="RFLPLMFunctionalCommunicationReference"
	Uuid="cd1718b8-e0d5-4cb1-bada5ca7b9960659"
	CustomerExposition="Programmer"
	CustomerExtensible="No"
	Specializable="No"
	Abstract="No"
	SuperName="RFLPLMFunctionalAbstractReference"
	CreateInstName="RFLPLMFunctionalCommunicationInstance"
	Abbreviation="fctcom">


    <Property Name="DMCDerivable" Value="Yes"/>
    <Property Name="KweNew_InstanciationMethod" Value="CATEFctDelegateInstanciation"/>
    <Property Name="KweNew_ReturnedType" Value="RFLPLMFunctionalCommunicationInstance"/>
    <Property Name="IconName" Value="I_RFLPLMDeMux"/>
    <Property Name="3DIconName" Value="CAT3DNav_MUXDEMUX.cgr"/>
    <Property Name="Searchable" Value="Yes"/>
    <Property Name="ChangeManagementSupport" Value="Yes"/>
    <Property Name="InstantiationOwnerTypes" Value="RFLPLMFunctionalReference"/>
    <Property Name="ShareBetweenProjectsAvailability" Value="Yes"/>
    <!-- Collaborative Space Applicability -->

    <CAAComment>
      <ShortRole>PLM Functional Communication Reference Object</ShortRole>
      <Role>PLM Functional Communication Reference Object</Role>
    </CAAComment>

    <Simple Name="V_CommunicationType" Uuid="3d330ffc-fb09-4fdd-8736-261510571a77" Type="Integer" Protection="External" CAAExposition="L1" DefaultValue="1" Faceted="Yes" PLMImpacting="No">
      <CAAComment>
        <ShortRole>Kind of Communication Reference (Mutliplexer, Demultiplexer)</ShortRole>
      </CAAComment>
      <Property Name="SIXW" Value="ds6w:kind"/>
      <Property Name="RangeAsEnumName" Value="V_FctCommunicationTypeEnum"/>
      <Property Name="RangeAsEnumAuthorizedValues" Value="Multiplexer;Demultiplexer"/>
      <Range>
        <Equal>1</Equal>
        <Equal>2</Equal>
      </Range>
    </Simple>

    <Method ImplementationType="Self">
      <RealizeMethodType href="ExportScope.meth#ExportScope"/>
      <ProcedureForUsage>
        <Usage href="ExportScope.meth#Design"/>
        <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerRef_Design"/>
      </ProcedureForUsage>
      <ProcedureForUsage>
        <Usage href="ExportScope.meth#Channel"/>
        <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerRef_PLMChannel"/>
      </ProcedureForUsage>
	  <ProcedureForUsage>
	    <Usage href="ExportScope.meth#Remove"/>
	    <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerRef_Remove"/>
	  </ProcedureForUsage>
	  <ProcedureForUsage>
	    <Usage href="ExportScope.meth#TransferSiteOwnership"/>
	    <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerRef_TSO"/>
	  </ProcedureForUsage>
    </Method>

  </Class>

  <!-- *********************************************************** -->
  <!-- * RFLPLMFunctionalCommunicationInstance (PLMCoreInstance) * -->
  <!-- *********************************************************** -->

  <RelationClass Name="RFLPLMFunctionalCommunicationInstance"
		Uuid="11372baf-49f5-441c-81fa9c2e2a1be3ea"
		 
    CustomerExposition="Programmer"
    CustomerExtensible="No"
    Specializable="No"
		Abstract="No"
		SuperName="PLMCoreInstance">

    <Property Name="DMCDerivable" Value="Yes"/>
    <Property Name="KweNew_InstanciationMethod" Value="CATEFctDelegateInstanciation"/>
    <Property Name="KweNew_ReturnedType" Value="RFLPLMFunctionalCommunicationInstance"/>
    <Property Name="Searchable" Value="No"/>
    <Property Name="Filtrable" Value="Yes"/>

    <CAAComment>
      <ShortRole>PLM Functional Communication Instance Object</ShortRole>
      <Role>PLM Function Communication Instance Object</Role>
    </CAAComment>

    <!-- *********************************************************
             * Define Owner and InstanceOf
             ********************************************************* -->

    <SubClause Name="from" TargetName="RFLPLMFunctionalAbstractReference"/>
    <SubClause Name="to"   TargetName="RFLPLMFunctionalCommunicationReference"/>
    

    <Volatile Name="Reference" Uuid="83ddb19c-ea28-454e-89a6-dd1c07daad58" Accessor="PLMModelerReferenceKweAttribute" TypeName="RFLPLMFunctionalCommunicationReference" AccessMode="ReadOnly" >
      <Property Name="ServerAccessor" Value="com.dassault_systemes.vplm.modelerBaseNav.services.PLMInstance_Reference_Accessor"/>
    </Volatile>


    <Method ImplementationType="Self">
      <RealizeMethodType href="ExportScope.meth#ExportScope"/>
      <ProcedureForUsage>
        <Usage href="ExportScope.meth#Channel"/>
        <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerInst_PLMChannel"/>
      </ProcedureForUsage>
	  <ProcedureForUsage>
	    <Usage href="ExportScope.meth#Remove"/>
	    <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerInst_Remove"/>
	  </ProcedureForUsage>
	  <ProcedureForUsage>
	    <Usage href="ExportScope.meth#TransferSiteOwnership"/>
	    <UsedProcedure href="ENOFct_Procedures.proc#Functional_ExportMultiplexerInst_TSO"/>
	  </ProcedureForUsage>
    </Method>

  </RelationClass>

  <!-- **************************************************** -->
  <!-- * Declaration of functions                           -->
  <!-- **************************************************** -->
  <Function Name="RFLPLMFunctionalCommunicationReference_Aggregated1stLvlObjects">
      <Implementation Name="RFLPLMFunctionalCommunicationReference_Aggregated1stLvlObjects" FileLocation="RFLPLMFunctionalCommunicationReference_Aggregated1stLvlObjects.plmql" Language="PLMQL"/>
      <Signature href="ENOFctMuxDemuxSignature"/>
  </Function>

  <Signature id="ENOFctMuxDemuxSignature">
      <Parameter Name="InputIds" Lower="0" Upper="-1" Direction="in" MultiValuated="Yes" DataType="PLMId"/>
      <Parameter Name="OutputIds" Lower="0" Upper="-1" Direction="out" MultiValuated="No" DataType="PLMRouteSet"/>
  </Signature>
  
</Package>
